// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Start Message Object
// Script Author: Christian Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------

// Aliases
private alias 7 : TYPE_STARTMESSAGE

private alias object.value0 : start.fadeValue
private alias object.value4 : start.demoCountdown
private alias object.value5 : fade.mode
private alias object.value6 : start.color

private alias 0 : ACTIVE
private alias 1 : INACTIVE

event ObjectMain
	switch object.state
	case ACTIVE
		if fade.mode == 0
			if object.alpha <= 255
				object.alpha += 4
			else
				object.alpha = 255
				fade.mode = 1
			end if
		end if

		if fade.mode == 1
			if object.alpha >= 5
				object.alpha -= 4
			else
				object.alpha = 5
				fade.mode = 0
				if start.color == 0
					start.color = 1
				else
					start.color = 0
				end if
			end if
		end if

		temp1 = inputDown.buttonX
		temp1 &= inputDown.buttonZ
		if temp1 == 1
			ResetObjectEntity(object.entityPos, TypeName[Test], 0, 0, 0)
			foreach (TypeName[Initial Background], arrayPos0, ALL_ENTITIES)
				object[arraypos0].state = 0
			next
		end if

		CheckTouchRect(0, 0, screen.xsize, screen.ysize)
		if inputPress.start == 1
			checkResult = 1
		end if
		if inputPress.buttonA == 1
			checkResult = 1
		end if
		if inputPress.buttonB == 1
			checkResult = 1
		end if
		if inputPress.buttonC == 1
			checkResult = 1
		end if
		if checkResult > -1 
			SaveRAM[409] = 1
			WriteSaveRAM()
			PlaySfx(SfxName[Start], 0)
			object.state = INACTIVE
			foreach (TypeName[Initial Shatter], arrayPos0, ALL_ENTITIES)
				object[arrayPos0].state = 1
			next
		endif
		break
	case INACTIVE
			object.alpha = 0
			fade.mode = 0
		break
	case 10
		start.fadeValue += 8
		if start.fadeValue == 320
			options.attractMode = 0
			player.lives = 3
			player.continues = 0
			player.score = 0
			player.scoreBonus = 0xC350
			starPostID = 0
			specialStage.listPos = 0
			specialStage.emeralds = 0
			specialStage.nextZone = 0
			stage.activeList = PRESENTATION_STAGE
			stage.listPos = 1
			LoadStage()
		end if
		SetScreenFade(0, 0, 0, start.fadeValue)
		break
	end switch
end event


event ObjectDraw
		object.inkEffect = INK_ALPHA
		if object.state == ACTIVE
			if start.color == 0
				DrawSpriteScreenFX(0, FX_INK, screen.xcenter, object.ypos)
			else
				DrawSpriteScreenFX(1, FX_INK, screen.xcenter, object.ypos)
			end if
		endif
end event


event ObjectStartup
	object.alpha = 0
	LoadSpriteSheet("Title/Title.gif")
	SpriteFrame(-59, -1, 119, 12, 214, 156)
	SpriteFrame(-59, -1, 119, 12, 276, 170)
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
